# 传感器编号
deviceNum = "28-01205b67097c"
# 设备记录数据的文件地址
deviceFile ='/sys/bus/w1/devices/' + deviceNum + '/w1_slave'

# 打开并读取文件数据
def readDeviceFile():
    f = open(deviceFile,'r')
    lines = f.readlines()
    f.close()
    return lines

# 解析温度数据
# deviceFile文件中的数据一般如下所示：其中 YES 表明是有效数据，t后面是温度，(t % 1000.0) 就是摄氏度
# b7 01 4b 46 7f ff 0c 10 4b : crc=4b YES
# b7 01 4b 46 7f ff 0c 10 4b t=27437
def readTemp():
    lines = readDeviceFile()
    # 如果第一行末尾不是 YES，则等待0.2s后重复读取，直至读取有效数据为止
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        # 循环继续读
        lines = readDeviceFile()
    # 读取温度
    tempIndex = lines[1].find('t=')
    if tempIndex != -1:
        temp = lines[1][tempIndex + 2:]
        tempC = float(temp)/1000.0
    return tempC

t = readTemp()
print(t)
